package com.twetec.cms.service.search;


import com.twetec.cms.model.po.search.SearchArticlePO;
import com.twetec.cms.model.vo.search.SearchArticlePageListVO;
import com.twetec.cms.model.vo.search.SearchArticleVO;

import java.util.Date;
import java.util.List;

/**
 * 文章检索
 */
public interface SearchArticleService {

    /**
     * 添加文章(在后台新增完文章后，再把文章数据新增到检索服务器)
     */
    void addDoc(SearchArticlePO searchArticlePO) throws Exception;

    /**
     * 批量添加文章
     */
    void addDocBatch(List<SearchArticlePO> searchArticlePOList) throws Exception;

    /**
     * 删除文章
     */
    void deleteDocByArticleId(String articleId) throws Exception;

    /**
     * 批量删除文章
     */
    void deleteDocBatchByArticleIds(List<String> articleIdList) throws Exception;

    /**
     * 更新文章
     */
    void updateDoc(SearchArticlePO searchArticlePO) throws Exception;

    /**
     * 批量更新文章
     */
    void updateDocBatch(List<SearchArticlePO> searchArticlePOList) throws Exception;

    /**
     * 根据文章id获取文章
     */
    SearchArticleVO getDocByArticleId(String articleId) throws Exception;

    /**
     * 后台 - 根据检索条件，分页展示文章列表(未输入的，可以为空字符串)
     */
    SearchArticlePageListVO pageSearchList(String articleTitle, String articleContent, String authorName, List<String> columnIdList, Date createStartTime, Date createEndTime, Date releaseStartTime, Date releaseEndTime, String articleOrigin, String articleStatus, String seoKeywords, String articleType, Integer page, Integer limit) throws Exception;

    /**
     * 前台 - 根据检索条件，分页展示文章列表(未输入的，可以为空字符串)
     */
    SearchArticlePageListVO pageSearchList(String siteId, String articleTitle, String articleContent, String authorName, List<String> columnIdList, Date createStartTime, Date createEndTime, Date releaseStartTime, Date releaseEndTime, String articleOrigin, String articleStatus, String seoKeywords, String articleType, Integer page, Integer limit) throws Exception;
}
